package pro1.t1;

//import jdk.nashorn.internal.ir.CallNode;

import java.util.Arrays;


/**题目描述：  两数之和
 * 给定一个整数数组 nums 和一个整数目标值 target，请你在该数组中找出 和为目标值 target  的那 两个 整数，并返回它们的数组下标。
 */
public class 两数之和 {
    /**方法一：暴力枚举
     * 最容易想到的方法是枚举数组中的每一个数 x，寻找数组中是否存在 target - x。
     *
     * 当我们使用遍历整个数组的方式寻找 target - x 时，需要注意到每一个位于 x 之前的元素都已经和 x 匹配过，因此不需要再进行匹配。
     * 而每一个元素不能被使用两次，所以我们只需要在 x 后面的元素中寻找 target - x。
     *
     * @param nums
     * @param target
     * @return
     * 时间复杂度：o(n2)
     */
    public static int[] twoSum(int[] nums, int target) {
        int n=nums.length;
        for(int i =0;i<n;i++){
            for(int j=i+1;j<n;j++){
                if(nums[i]+nums[j]==target){
                    return new  int[] {i,j};
                }
            }
        }
        return new int[] {0};
    }

    /**
     * 测试主类
     * @param args
     */
    public static void main(String[] args) {
        int[] a={2,7,11,15};
        int[] ints = twoSum(a, 9);

        System.out.println(Arrays.toString(ints));

    }
}
